package com.qqt.csr.route.vo.req;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.qqt.csr.common.idempotent.RequestKeyParam;
import com.qqt.csr.common.operalog.OperaLogSchema;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;
import java.util.List;

/**
 * 客服服务时间
 */
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@JsonIgnoreProperties(ignoreUnknown = true)
@Schema(name = "UpdatingServiceTimeReqVO", description = "编辑客服服务时间")
public class UpdatingServiceTimeReqVO implements Serializable {
    @Serial
    private static final long serialVersionUID = -5994969866661106202L;

    @Schema(description = "服务时间ID",requiredMode = Schema.RequiredMode.REQUIRED)
    @OperaLogSchema(desc = "服务时间ID")
    @NotNull(message = "服务时间ID不能为空")
    @RequestKeyParam
    private Integer id;

    @Schema(description = "工作时间",requiredMode = Schema.RequiredMode.REQUIRED)
    @OperaLogSchema(desc = "工作时间")
    @Size(max = 10, message = "工作时间最多10组")
    @Valid
    private List<WorkTimeReqVO> workTimeList;

    @Schema(description = "节假日时间",requiredMode = Schema.RequiredMode.REQUIRED)
    @OperaLogSchema(desc = "节假日时间")
    @Size(max = 10, message = "节假日时间最多10组")
    @Valid
    private List<HolidayTimeReqVO> holidayList;

    @Schema(description = "非常规工作时间",requiredMode = Schema.RequiredMode.REQUIRED)
    @OperaLogSchema(desc = "非常规工作时间")
    @Size(max = 10, message = "非常规工作时间最多10组")
    @Valid
    private List<WorkOvertimeReqVO> workOvertimeList;
}